<?php

/**
 * 定义了框架的目录结构，并包含必须的内核代码。
 * 
 * 这是一个将整个框架“聚起来”的地方，链接起分散在各个文件中的代码
 * 
 */


date_default_timezone_set('Asia/Shanghai');

if(empty($_SERVER['DOCUMENT_ROOT'])){
	define('N_SCRIPT','cli');
	define('N_CLI','Y');
	define('N_CGI','N');
}else{
	define('N_SCRIPT','cgi');
	define('N_CLI','N');
	define('N_CGI','Y');
}

define('N_ROOT', 'Y'==N_CGI?$_SERVER['DOCUMENT_ROOT']:dirname(dirname(__FILE__)));
define('N_ENTRY','Y'==N_CGI?substr($_SERVER['PHP_SELF'],1,-4):substr(basename($_SERVER['PHP_SELF']),0,-4));	//获取访问入口

/**
 * linruiyan@2013-6-25 这里的路径配置从ini.php中拿过来。存在一定的顺序纠结
 * 
 * 我们需要初始化框架的配置，得先加载配置数据
 * 配置数据需要走框架调度。所以拎出来的同时加了一个小设计。根据访问入口来决定配置文件。如果你自己想指定配置文件可以修改下面的代码
 * 
 * 这样的目的是使用相同代码不同的数据源进行开发和测试。
 * 在实际开发中我们可能需要另外一套预发布环境即可。通过组合我们就能得到多套环境
 * 
 * 开发环境:开发代码，开发数据源
 * 灰色环境:开发代码，正式数据源
 * 生产环境:正式代码，正式数据源
 */
define('N_CORE' , 	N_ROOT . '/core');					//核心目录
define('N_PLUGINS', N_ROOT . '/plugins');				//插件目录
define('N_CONF', 	N_ROOT . "/conf/" . (defined('N_MYCONF')?N_MYCONF:N_ENTRY));		//配置目录，目录由访问入口决定



/**
 * 
 * 加载框架的所有代码
 */
include_once N_CORE . '/Function2.php';
include_once N_ROOT . '/core/Ini.php';
include_once N_CORE . '/Base.php';
include_once N_CORE . '/NException.php';
include_once N_CORE . '/Controller.php';
//include_once N_CORE . '/Lib/Debug.php';

